package com.hjm.project.bankExpenditure.bankExpenditure.domain;

import java.util.Date;

import com.hjm.framework.aspectj.lang.annotation.Excel;
import com.hjm.framework.web.domain.BaseEntity;
import com.hjm.project.accounts.accounts.domain.Accounts;
import com.hjm.project.agentInfo.agentInfo.domain.AgentInfo;
import com.hjm.project.bankCardtype.bankCardtype.domain.BankCardtype;
import com.hjm.project.merchantInfo.merchantInfo.domain.MerchantInfo;
import com.hjm.project.tBankinfo.tBankinfo.domain.TBankinfo;
import lombok.Getter;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 消费对象 bank_expenditure
 *
 * @author LOVE
 * @date 2020-11-27
 */
public class BankExpenditure extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 唯一凭证号
     */
    private String serial;

    /**
     * 交易类型 H007
     */
    @Excel(name = "交易类型 H007")
    private String msgtype;

    /**
     * 交易日期yyyy-MM-dd
     */
    @Excel(name = "交易日期yyyy-MM-dd")
    private String localdate;

    /**
     * 交易时间HH24:mm:ss
     */
    @Excel(name = "交易时间HH24:mm:ss")
    private String localtime;

    /**
     * 通道编号
     */
    @Excel(name = "通道编号")
    private Long bid;
    /**
     * 通道编号
     */
    @Excel(name = "交易详细地址")
    private String addressAll;

    /**
     * 交易卡号
     */
    @Excel(name = "交易卡号")
    private String pan;

    /**
     * 交易金额
     */
    @Excel(name = "交易金额")
    private String amount;

    /**
     * 交易结果
     */
    @Excel(name = "交易结果")
    private String rc;

    /**
     * 交易状态，-1 撤销  -2 冲正 0：成功、2：失败 1：补录
     */
    @Excel(name = "交易状态，-1 撤销  -2 冲正 0：成功、2：失败 1：补录")
    private String status;

    /**
     * 终端流水号
     */
    @Excel(name = "终端流水号")
    private String stan;

    /**
     * 渠道参考号
     */
    @Excel(name = "渠道参考号")
    private String rrno;

    /**
     * 授权码
     */
    @Excel(name = "授权码")
    private String air;

    /**
     * 本地时间
     */
    @Excel(name = "本地时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date dd;

    /**
     * 渠道终端号
     */
    @Excel(name = "渠道终端号")
    private String cati;

    /**
     * 渠道商户号
     */
    @Excel(name = "渠道商户号")
    private String bno;

    /**
     * 输入方式（区分磁条芯片卡）
     */
    @Excel(name = "输入方式", readConverterExp = "区=分磁条芯片卡")
    private String inputtype;

    /**
     * 系统标识，1:165/2:180
     */
    @Excel(name = "系统标识，1:165/2:180")
    private Long syschar;

    /**
     * 卡类型，0：未知、1：借记卡、2：贷记卡、3：预付费卡
     */
    @Excel(name = "卡类型，0：未知、1：借记卡、2：贷记卡、3：预付费卡")
    private Long cardtype;

    /**
     * 结算类型 0：D0 1：T1
     */
    @Excel(name = "结算类型 0：D0 1：T1")
    private String settType;

    /**
     * 系统商户号
     */
    @Excel(name = "系统商户号")
    private String merNo;

    /**
     * 系统终端号
     */
    @Excel(name = "系统终端号")
    private String terno;

    /**
     * 终端实际SN号
     */
    @Excel(name = "终端实际SN号")
    private String sn;

    /**
     * 0:普通交易 1双免交易
     */
    @Excel(name = "0:普通交易 1双免交易")
    private Integer isdissmis;

    /**
     * 0:普通交易 1 云闪付交易
     */
    @Excel(name = "0:普通交易 1 云闪付交易")
    private Integer isysf;

    /**
     * 清算状态 0 未清 1已清
     */
    @Excel(name = "清算状态 0 未清 1已清")
    private Long auState;

    /**
     * 对账状态 0 未对账 1 已对账
     */
    @Excel(name = "对账状态 0 未对账 1 已对账")
    private Long biState;

    /**
     * 0 普通交易 1手机pay
     */
    @Excel(name = "0 普通交易 1手机pay")
    private Long phonepay;

    /**
     * 终端交易查询接口  是否返回 0-是  1-否
     */
    @Excel(name = "终端交易查询接口  是否返回 0-是  1-否")
    private Long isT001;

    /**
     * 银联清算日期
     */
    @Excel(name = "银联清算日期")
    private String settdate;

    /**
     * 保险金额
     */
    @Excel(name = "保险金额")
    private String inscharges;

    /**
     * 商户手续费
     */
    @Excel(name = "商户手续费")
    private String tradeCharges;

    /**
     * 附加费
     */
    @Excel(name = "附加费")
    private String tradeChargesFj;

    /**
     * 是否是会员  V：会员  P:普通会员；电签是否是会员交易：  V：会员  P:普通
     */
    @Excel(name = "是否是会员  V：会员  P:普通会员；电签是否是会员交易：  V：会员  P:普通")
    private String isvip;

    /**
     * （商户号，商户名称） 用于小票取值
     */
    @Excel(name = "", readConverterExp = "商=户号，商户名称")
    private String note;

    private String agentNum;

    private String merType;
    private String ldMerno;


    private MerchantInfo merchantInfo;
    private AgentInfo agentInfo;
    private Accounts accounts;
    private BankCardtype bankCardtype;
    private TBankinfo tBankinfo;
    private String simMoney;
    private String chargeType;

    @Getter
    private String manuNum;

    public void setManuNum(String manuNum) {
        this.manuNum = manuNum;
    }

    public String getSimMoney() {
        return simMoney;
    }

    public void setSimMoney(String simMoney) {
        this.simMoney = simMoney;
    }

    public String getChargeType() {
        return chargeType;
    }

    public void setChargeType(String chargeType) {
        this.chargeType = chargeType;
    }

    public String getAddressAll() {
        return addressAll;
    }

    public void setAddressAll(String addressAll) {
        this.addressAll = addressAll;
    }

    public BankCardtype getBankCardtype() {
        if (null == bankCardtype) {
            bankCardtype = new BankCardtype();
        }
        return bankCardtype;
    }

    public void setBankCardtype(BankCardtype bankCardtype) {
        this.bankCardtype = bankCardtype;
    }

    public TBankinfo gettBankinfo() {
        if (null == tBankinfo) {
            tBankinfo = new TBankinfo();
        }
        return tBankinfo;
    }

    public void settBankinfo(TBankinfo tBankinfo) {
        this.tBankinfo = tBankinfo;
    }

    public MerchantInfo getMerchantInfo() {
        if (null == merchantInfo) {
            merchantInfo = new MerchantInfo();
        }
        return merchantInfo;
    }

    public void setMerchantInfo(MerchantInfo merchantInfo) {
        this.merchantInfo = merchantInfo;
    }

    public AgentInfo getAgentInfo() {
        if (null == agentInfo) {
            agentInfo = new AgentInfo();
        }
        return agentInfo;
    }

    public void setAgentInfo(AgentInfo agentInfo) {
        this.agentInfo = agentInfo;
    }

    public Accounts getAccounts() {
        if (null == accounts) {
            accounts = new Accounts();
        }
        return accounts;
    }

    public String getLdMerno() {
        return ldMerno;
    }

    public void setLdMerno(String ldMerno) {
        this.ldMerno = ldMerno;
    }

    public String getMerType() {
        return merType;
    }

    public void setMerType(String merType) {
        this.merType = merType;
    }

    public void setAccounts(Accounts accounts) {
        this.accounts = accounts;
    }

    public void setSerial(String serial) {
        this.serial = serial;
    }

    public String getSerial() {
        return serial;
    }

    public void setMsgtype(String msgtype) {
        this.msgtype = msgtype;
    }

    public String getMsgtype() {
        return msgtype;
    }

    public void setLocaldate(String localdate) {
        this.localdate = localdate;
    }

    public String getLocaldate() {
        return localdate;
    }

    public void setLocaltime(String localtime) {
        this.localtime = localtime;
    }

    public String getLocaltime() {
        return localtime;
    }

    public void setBid(Long bid) {
        this.bid = bid;
    }

    public Long getBid() {
        return bid;
    }

    public void setPan(String pan) {
        this.pan = pan;
    }

    public String getPan() {
        return pan;
    }

    public void setAmount(String amount) {
        this.amount = amount;
    }

    public String getAmount() {
        return amount;
    }

    public void setRc(String rc) {
        this.rc = rc;
    }

    public String getRc() {
        return rc;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getStatus() {
        return status;
    }

    public void setStan(String stan) {
        this.stan = stan;
    }

    public String getStan() {
        return stan;
    }

    public void setRrno(String rrno) {
        this.rrno = rrno;
    }

    public String getRrno() {
        return rrno;
    }

    public void setAir(String air) {
        this.air = air;
    }

    public String getAir() {
        return air;
    }

    public void setDd(Date dd) {
        this.dd = dd;
    }

    public Date getDd() {
        return dd;
    }

    public void setCati(String cati) {
        this.cati = cati;
    }

    public String getCati() {
        return cati;
    }

    public void setBno(String bno) {
        this.bno = bno;
    }

    public String getBno() {
        return bno;
    }

    public void setInputtype(String inputtype) {
        this.inputtype = inputtype;
    }

    public String getInputtype() {
        return inputtype;
    }

    public void setSyschar(Long syschar) {
        this.syschar = syschar;
    }

    public Long getSyschar() {
        return syschar;
    }

    public void setCardtype(Long cardtype) {
        this.cardtype = cardtype;
    }

    public Long getCardtype() {
        return cardtype;
    }

    public void setSettType(String settType) {
        this.settType = settType;
    }

    public String getSettType() {
        return settType;
    }

    public void setMerNo(String merNo) {
        this.merNo = merNo;
    }

    public String getMerNo() {
        return merNo;
    }

    public void setTerno(String terno) {
        this.terno = terno;
    }

    public String getTerno() {
        return terno;
    }

    public void setSn(String sn) {
        this.sn = sn;
    }

    public String getSn() {
        return sn;
    }

    public void setIsdissmis(Integer isdissmis) {
        this.isdissmis = isdissmis;
    }

    public Integer getIsdissmis() {
        return isdissmis;
    }

    public void setIsysf(Integer isysf) {
        this.isysf = isysf;
    }

    public Integer getIsysf() {
        return isysf;
    }

    public void setAuState(Long auState) {
        this.auState = auState;
    }

    public Long getAuState() {
        return auState;
    }

    public void setBiState(Long biState) {
        this.biState = biState;
    }

    public Long getBiState() {
        return biState;
    }

    public void setPhonepay(Long phonepay) {
        this.phonepay = phonepay;
    }

    public Long getPhonepay() {
        return phonepay;
    }

    public void setIsT001(Long isT001) {
        this.isT001 = isT001;
    }

    public Long getIsT001() {
        return isT001;
    }

    public void setSettdate(String settdate) {
        this.settdate = settdate;
    }

    public String getSettdate() {
        return settdate;
    }

    public void setInscharges(String inscharges) {
        this.inscharges = inscharges;
    }

    public String getInscharges() {
        return inscharges;
    }

    public void setTradeCharges(String tradeCharges) {
        this.tradeCharges = tradeCharges;
    }

    public String getTradeCharges() {
        return tradeCharges;
    }

    public void setTradeChargesFj(String tradeChargesFj) {
        this.tradeChargesFj = tradeChargesFj;
    }

    public String getTradeChargesFj() {
        return tradeChargesFj;
    }

    public void setIsvip(String isvip) {
        this.isvip = isvip;
    }

    public String getIsvip() {
        return isvip;
    }

    public void setNote(String note) {
        this.note = note;
    }

    public String getNote() {
        return note;
    }

    public String getAgentNum() {
        return agentNum;
    }

    public void setAgentNum(String agentNum) {
        this.agentNum = agentNum;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("serial", getSerial())
                .append("msgtype", getMsgtype())
                .append("localdate", getLocaldate())
                .append("localtime", getLocaltime())
                .append("bid", getBid())
                .append("pan", getPan())
                .append("amount", getAmount())
                .append("rc", getRc())
                .append("status", getStatus())
                .append("stan", getStan())
                .append("rrno", getRrno())
                .append("air", getAir())
                .append("dd", getDd())
                .append("cati", getCati())
                .append("bno", getBno())
                .append("inputtype", getInputtype())
                .append("syschar", getSyschar())
                .append("cardtype", getCardtype())
                .append("settType", getSettType())
                .append("merNo", getMerNo())
                .append("terno", getTerno())
                .append("sn", getSn())
                .append("isdissmis", getIsdissmis())
                .append("isysf", getIsysf())
                .append("auState", getAuState())
                .append("biState", getBiState())
                .append("phonepay", getPhonepay())
                .append("isT001", getIsT001())
                .append("settdate", getSettdate())
                .append("inscharges", getInscharges())
                .append("tradeCharges", getTradeCharges())
                .append("tradeChargesFj", getTradeChargesFj())
                .append("isvip", getIsvip())
                .append("note", getNote())
                .append("merchantInfo", getMerchantInfo().toString())
                .append("agentInfo", getAgentInfo().toString())
                .append("accounts", getAccounts().toString())
                .append("bankCardtype", getBankCardtype().toString())
                .append("tBankinfo", gettBankinfo().toString())
                .append("simMoney", getSimMoney().toString())
                .append("chargeType", getChargeType().toString())
                .toString();
    }
}
